﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace PowerTest.GiaoVien
{
    public partial class frmRaDeThiTuChon : Form
    {
        public frmRaDeThiTuChon()
        {
            InitializeComponent();
        }

        private void frmRaDeThiTuChon_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'powerTestDataSet.tblMonHoc' table. You can move, or remove it, as needed.
            this.tblMonHocTableAdapter.Fill(this.powerTestDataSet.tblMonHoc);
        }

        private void cbMon_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                int i = 0;
                // TODO: This line of code loads data into the 'powerTestDataSet.tblCauHoi' table. You can move, or remove it, as needed.
                this.viewCauHoiMucDoTableAdapter.FillByMaMon(this.powerTestDataSet.viewCauHoiMucDo, cbMon.SelectedValue.ToString());
                foreach (DataGridViewRow row in dgvCauHoi.Rows)
                {
                    i++;
                    row.Cells[0].Value = i;
                }
            }
            catch { }
        }

        private void btOk_Click(object sender, EventArgs e)
        {
            try
            {
                int i = 0;
                // TODO: This line of code loads data into the 'powerTestDataSet.viewCauHoiMucDo' table. You can move, or remove it, as needed.
                this.viewCauHoiMucDoTableAdapter.FillByMaMon(this.powerTestDataSet.viewCauHoiMucDo, cbMon.SelectedValue.ToString());
                foreach (DataGridViewRow row in dgvCauHoi.Rows)
                {
                    i++;
                    row.Cells[0].Value = i;
                }
                gbMon.Enabled = false;
                //btQuayLai.Enabled = true;
                gbSoCau.Enabled = true;
                txtSLgCauHoi.Focus();
            }
            catch { }
        }

        private void btSLgCauHoi_Click(object sender, EventArgs e)
        {
            if (txtSLgCauHoi.Text == "")
            {
                lblThongBao.Text = "Nhập vào số lượng câu hỏi!";
                lblThongBao.ForeColor = Color.Red;
                txtSLgCauHoi.Focus();
            }
            else
            {
                int dem = int.Parse(viewCauHoiMucDoTableAdapter.QueryDemSoCauHoi(cbMon.SelectedValue.ToString()).Value.ToString());
                if (int.Parse(txtSLgCauHoi.Text) > dem)
                {
                    lblThongBao.Text = "Số lượng câu hỏi lựa chọn vượt quá số câu hỏi có trong thư viện đề!";
                    lblThongBao.ForeColor = Color.Red;
                    txtSLgCauHoi.Text = "";
                    txtSLgCauHoi.Focus();

                }
                else
                {
                    lblThongBao.Text = "Chào mừng đến với ứng dụng ra đề thi theo yêu cầu";
                    lblThongBao.ForeColor = Color.Blue;
                    gbSoCau.Enabled = false;
                    gbTuyChinhDe.Enabled = true;
                    txtTenDe.Focus();

                }
            }
        }

        private void btQuayLaiChonMon_Click(object sender, EventArgs e)
        {
            gbMon.Enabled = true;
            gbTuyChinhDe.Enabled = false;
        }

        private void btXacNhanTuyChinh_Click(object sender, EventArgs e)
        {
            if (txtTenDe.Text == "")
            {
                lblThongBao.Text = "Cần phải nhập vào tên đề thi!";
                lblThongBao.ForeColor = Color.Red;
                txtTenDe.Focus();
            }
            else
            {
                lblThongBao.Text = "Chào mừng đến với ứng dụng ra đề thi theo yêu cầu";
                lblThongBao.ForeColor = Color.Blue;
                gbTuyChinhDe.Enabled = false;
                btXacNhan.Enabled = true;
                btQuayLai.Enabled = true;
            }
        }

        private void dgvCauHoi_SelectionChanged(object sender, EventArgs e)
        {
            if (dgvCauHoi.CurrentRow == null)
            {
                return;
            }
            try
            {
                string maCauHoi = dgvCauHoi.CurrentRow.Cells["maCauHoiDataGridViewTextBoxColumn"].Value.ToString();
                tblChiTietDapAnTableAdapter.FillByByMCH(powerTestDataSet.tblChiTietDapAn, maCauHoi);
            }
            catch
            {
            }
        }

        private void btQuayLai_Click(object sender, EventArgs e)
        {
            gbTuyChinhDe.Enabled = true;
            btQuayLai.Enabled = false;
            btXacNhan.Enabled = false;
        }

        private void btXacNhan_Click(object sender, EventArgs e)
        {
            int dem = 0;
            foreach (DataGridViewRow row in dgvCauHoi.Rows)
            {
                try
                {
                    if (row.Cells["Chon"].Value == null || bool.Parse(row.Cells["Chon"].Value.ToString()) == false)
                    {
                    }
                    else
                    {
                        dem++;
                    }

                }
                catch { }

            }
            if (dem == int.Parse(txtSLgCauHoi.Text))
            {
                btXacNhan.Enabled = false;
                btQuayLai.Enabled = false;
                btTaoDe.Enabled = true;
                lblThongBao.Text = "Chào mừng đến với ứng dụng ra đề thi theo yêu cầu";
                lblThongBao.ForeColor = Color.Blue;
            }
            else if (dem > int.Parse(txtSLgCauHoi.Text))
            {
                lblThongBao.Text = "Cần phải loại bỏ " + (dem - int.Parse(txtSLgCauHoi.Text) ) + " câu hỏi khỏi đề!";
                lblThongBao.ForeColor = Color.Red;
            }
            else
            {
                lblThongBao.Text = "Cần phải chọn thêm câu hỏi vào đề, còn thiếu " + (int.Parse(txtSLgCauHoi.Text) - dem) + " câu hỏi!";
                lblThongBao.ForeColor = Color.Red;
            }

        }

        private void btTaoDe_Click(object sender, EventArgs e)
        {
            string maDe = Func.autoDeThi();
            int time = int.Parse(mskGio.Text) * 60 + int.Parse(mskPhut.Text);
            float diem = 10 / int.Parse(txtSLgCauHoi.Text);
            tblDeThiTableAdapter.Insert(maDe, Func.maTruyCap, txtTenDe.Text, int.Parse(txtSLgCauHoi.Text), DateTime.Now, time);
            foreach (DataGridViewRow row in dgvCauHoi.Rows)
            {
                try
                {
                    if (row.Cells["Chon"].Value == null || bool.Parse(row.Cells["Chon"].Value.ToString()) == false)
                    {

                    }
                    else
                    {
                        tblChiTietDeThiTableAdapter.Insert(maDe, row.Cells["maCauHoiDataGridViewTextBoxColumn"].Value.ToString(), diem);
                    }

                }
                catch { }
            }
            lblThongBao.Text = "Tạo đề thành công!";
            lblThongBao.ForeColor = Color.Blue;
            btTaoDe.Enabled = false;
        }

        private void btTaoDeMoi_Click(object sender, EventArgs e)
        {
            Dispose();
            new frmRaDeThiTuChon().ShowDialog();
        }
    }
}